179 research outputs found

    On the Effect of Semantically Enriched Context Models on Software Modularization

    Full text link
    Many of the existing approaches for program comprehension rely on the linguistic information found in source code, such as identifier names and comments. Semantic clustering is one such technique for modularization of the system that relies on the informal semantics of the program, encoded in the vocabulary used in the source code. Treating the source code as a collection of tokens loses the semantic information embedded within the identifiers. We try to overcome this problem by introducing context models for source code identifiers to obtain a semantic kernel, which can be used for both deriving the topics that run through the system as well as their clustering. In the first model, we abstract an identifier to its type representation and build on this notion of context to construct contextual vector representation of the source code. The second notion of context is defined based on the flow of data between identifiers to represent a module as a dependency graph where the nodes correspond to identifiers and the edges represent the data dependencies between pairs of identifiers. We have applied our approach to 10 medium-sized open source Java projects, and show that by introducing contexts for identifiers, the quality of the modularization of the software systems is improved. Both of the context models give results that are superior to the plain vector representation of documents. In some cases, the authoritativeness of decompositions is improved by 67%. Furthermore, a more detailed evaluation of our approach on JEdit, an open source editor, demonstrates that inferred topics through performing topic analysis on the contextual representations are more meaningful compared to the plain representation of the documents. The proposed approach in introducing a context model for source code identifiers paves the way for building tools that support developers in program comprehension tasks such as application and domain concept location, software modularization and topic analysis

    A Situational Implementation Method for Business Process Management Systems

    Get PDF
    For the integrated implementation of Business Process Management and supporting information systems many methods are available. Most of these methods, however, apply a one-size fits all approach and do not take into account the specific situation of the organization in which an information system is to be implemented. These situational factors, however, strongly determine the success of any implementation project. In this paper a method is provided that establishes situational factors of and their influence on implementation methods. The provided method enables a more successful implementation project, because the project team can create a more suitable implementation method for business process management system implementation projects

    Процесс коммуникации в клинической диагностике. Семиотический подход

    Get PDF
    Досліджено природу знаку, його функції, особливості знаків ситуації в клінічній діагностиці, а також різні аспекти трансперсональної комунікації. Розглянуто об’єктивні ознаки–знаки, симптоми, їх словесні позначення, необхідні для переведення діагностичної інформації з рівня сигналів на рівень повідомлення шляхом виокремлення сенсу в процесі їх розуміння.The nature of a sign, its functions, distinctive features of a sign situation in clinical diagnostics, and also various aspects of transpersonal communications are investigated. Objective attributes such as signs, symptoms, and their verbal denotations are considered that are necessary to translate diagnostic information from the level of signals to the level of a message by extraction their meaning during their understanding

    Source Data for the Focus Area Maturity Model for Software Ecosystem Governance

    Get PDF
    We define a software ecosystem as a set of organizations collaboratively serving a market for software and services. Typically these ecosystems are underpinned by a common technology, such as an extendable software platform. This data set supports the article that describes the Software Ecosystem Governance Maturity Model (SEG−M2) [50]. The model has the goal to support software ecosystem orchestrators in the management and governance of the actors in their ecosystems in a structured way. Through a critical structured literature review, 168 practices have been collected. These practices have been evaluated through six case studies at software ecosystem orchestrators. The practices are described with a practice code, a practice name, a practice description, required success conditions, the person responsible for the practice, and the associated literature where the practice was identified

    WSCDL to WSBPEL: A Case Study of ATL-based Transformation

    Get PDF
    The ATLAS Transformation Language (ATL) is a hybrid transformation language that combines declarative and imperative programming elements and provides means to define model transformations. Most transformations using ATL reported in the literature show a simplified use of ATL, and often involve a single transformation. However, in more realistic situations, multiple transformations may be necessary, especially in case the original input/output models are not represented in the metametamodeling representation expected by the transformation engine. In this paper, we discuss a model transformation from service choreography (WSCDL) to service orchestration (WSBPEL), which cannot be performed in a single ATL transformation due to the mismatch between the concrete XML syntax of these languages and the metametamodeling representation expected by the ATL transformation engine. This requires auxiliary transformations in which this mismatch is resolved. In principle, the required auxiliary transformations can be implemented using XSLT or a general-purpose programming language like Java. However, in our case study, we evaluate the use of ATL to perform these transformations. We exploit ATL by leveraging the ATL's XML\ud injection and the XML extraction mechanisms to perform the overall transformation in terms of a transformation chain

    Software release and deployment at Exact: a case study report

    Get PDF
    For vendors of product software it is becoming more and more difficult to manage and control the software configurations of all their users at the customer's site. It is labour intensive and error-prone to (semi)automatically register detailed lists of the software artefacts in use by each customer. To alleviate this problem the Deliver project proposes an Intelligent Software Knowledge Base that contains all facts about all artefacts together with their relevant attributes, relations and constraints. In this way, high-quality software configurations can be calculated automatically from a small set of key parameters. It also becomes possible to pose what-if questions about necessary or future upgrades of a customer's configuration. This document describes a case study performed at Exact Software into the processes of release and deployment. The results of the case study are presented, existing of process descriptions of the development, release and deployment processes at Exact Software, a comparison to the Intelligent Software Knowledge Base, and an analysis of the result

    Applications of Multi-view Learning Approaches for Software Comprehension

    Full text link
    Program comprehension concerns the ability of an individual to make an understanding of an existing software system to extend or transform it. Software systems comprise of data that are noisy and missing, which makes program understanding even more difficult. A software system consists of various views including the module dependency graph, execution logs, evolutionary information and the vocabulary used in the source code, that collectively defines the software system. Each of these views contain unique and complementary information; together which can more accurately describe the data. In this paper, we investigate various techniques for combining different sources of information to improve the performance of a program comprehension task. We employ state-of-the-art techniques from learning to 1) find a suitable similarity function for each view, and 2) compare different multi-view learning techniques to decompose a software system into high-level units and give component-level recommendations for refactoring of the system, as well as cross-view source code search. The experiments conducted on 10 relatively large Java software systems show that by fusing knowledge from different views, we can guarantee a lower bound on the quality of the modularization and even improve upon it. We proceed by integrating different sources of information to give a set of high-level recommendations as to how to refactor the software system. Furthermore, we demonstrate how learning a joint subspace allows for performing cross-modal retrieval across views, yielding results that are more aligned with what the user intends by the query. The multi-view approaches outlined in this paper can be employed for addressing problems in software engineering that can be encoded in terms of a learning problem, such as software bug prediction and feature location

    A process framework and typology for software product updaters.

    Get PDF
    Product software is constantly evolving through extensions, maintenance, changing requirements, changes in configuration settings, and changing licensing information. Managing evolution of released and deployed product software is a complex and often underestimated problem that has been the cause of many difficulties for both software vendors and customers. This paper presents a framework and typology to characterize techniques that support product software update methods. The framework is based on a detailed process model of software updating. Finally, this paper assesses and surveys a variety of existing techniques against the characterisation framework and lists unsolved problems related to software product updater

    A systematic literature review on trust in the software ecosystem

    Get PDF
    The worldwide software ecosystem is a trust-rich part of the world. Throughout the software life cycle, software engineers, end-users, and other stakeholders collaboratively place their trust in major hubs in the ecosystem, such as package managers, repository services, and software components. However, as our reliance on software grows, this trust is frequently violated by bad actors and crippling vulnerabilities in the software supply chain. This study aims to define software trust in the worldwide SECO, that is, to determine what signifies a trustworthy system, actor, or hub. We conduct a systematic literature review on the concept of trust in the software ecosystem. We acknowledge that trust is something between two actors in the software ecosystem, and we examine what role trust plays in the relationships between end-users and (1) software products, (2) package managers, (3) software producing organizations, and (4) software engineers. Two major findings emerged from the systematic literature review. To begin, we define trust in the software ecosystem by examining the definition and characteristics of trust. Second, we provide a list of trust factors that can be used to assemble an overview of software trust. Trust is critical in the communication between actors in the worldwide software ecosystem, particularly regarding software selection and evaluation. With this comprehensive overview of trust, software engineering researchers have a new foundation to understand and use trust to create a trustworthy software ecosystem
    corecore